SageMaker Ground Truthの画像ジョブの仕組みを調査した
NTT東日本の中村です。
SageMaker Ground Truthのラベリングジョブを管理しているのですが、画像分類のタスクの配分とジョブの連鎖について調査してみました。 ちなみに、動画フレームのジョブについては、こちらの記事で触れています。
概要
社内のプロジェクトでSageMaker Ground Truthのラベリングジョブを実行しており、同じようなテスト環境を構築しました。 前回は動画フレームからGround Truthが自動的にスライスし、ラベル付けを行っていましたが、今回は予めスライス済の画像を用意し、データセットとして読み込ませる手法を取りました。
静止画のオブジェクト検出の特徴
動画フレームと静止画の2つのオブジェクト検出手法で、大まかな違いを紹介します。
「次を予測」等の、フレーム前後を補完するツールは存在しない
一連のスライスしたフレームをコマ送りでラベル付けを行いますが、「次を予測(Pregdict next)」というツールで 現在のフレームの矩形を元に、次のフレームの矩形を予測する機能がついていました。 静止画の場合、画像の前後関係は考慮されないため、このツールが存在しません。
動画フレーム
動画フレームのラベル付け画面です。
静止画
動画フレームには存在した、Predict Nextツールや、前のフレームを次のフレームにコピーする機能等が存在しません。
静止画群のラベリングで、データのラベル付けの自動化が使用できる
ジョブ作成時に、ラベル自動化のボタンが追加され、EC2で動作する機械学習を補助的に使用し、矩形の検出をサポートする機能が使えるようになります。 元となる、ラベル付けの完了したデータを元に推論を行います。最小で1250程のデータが必要との事です。 また、EC2で推論を行うため、追加コストも発生します。
自動データラベリングに許容される最小のオブジェクト数は 1,250 ですが、少なくとも 5,000 個のオブジェクトを指定することを強くお勧めします。
データフローオブジェクトの柔軟な調整が可能
動画フレームではNumberOfHumanWorkersPerDataObjectの値が1固定、つまり1つの動画フレームを処理できるワーカは一人と決まっていましたが、静止画ではこの値が変更可能となり、複数名が重複してラベル付けを行えるようになりました。
MaxConcurrentTaskCountの設定
今回は、MaxConcurrentTaskCountの調整も行ってみます。 MaxConcurrentTaskCountを指定することで、1タスク辺りに割り当てられる静止画の数を制御できます。
MaxConcurrentTaskCount
は、人間のワーカーが同時にラベル付けできるデータオブジェクトの最大数を定義します。コンソールを使用する場合、このパラメータは 1,000 に設定されます。CreateLabelingJob
を使用した場合は、このパラメータを 1~1,000 の範囲の任意の整数に設定できます。
例えば、100枚の静止画をデータセットとしたジョブが存在し、ワーカーが10人居た場合、1タスクを10枚に設定すると、一人1タスクで効率良くラベル付けを進めることができます。 これが1タスク100枚になってしまうと、一人のワーカだけが忙しく、残りのワーカーは手が空いてしまうため、効率良く進めることが出来ません。
ただし、上記のコメントにもある通り、MaxConcurrentTaskCountはマネージメントコンソールからジョブを作成した場合、1000となり、CreateLabelingJobのAPI経由でのみ調整が可能です。 途中で変更もできないようです(UpdateLaberingJobというAPIが存在しない)。
その他
output.manifestに出力されるデータ形式が異なるので、動画フレームからそのまま置き換えができる訳でもなく、一手間必要になります。
調査してみた
今回の調査のシナリオです。
- 静止画のオブジェクト検出でテストする
- Amazon Cognitoを利用した Private WorkForce(三人)
- NumberOfHumanWorkersPerDataObjectは1で行う(=一つの画像を数人で作業することは無い)
- MaxConcurrentTaskCountが1000の時の、ワーカーへのタスク割当の内容を確認する
- データソースとして50の画像(1から50の数字が書かれている)を用意し、S3にアップロードしておく
- 50の静止画をデータセットとして、Ground Truthのコンソールからジョブを作成する。(MaxConcurrentTaskCount=1000)
- 各ワーカーが1タスクごとに何枚の画像を割り当てられているか、チェックする
- MaxConcurrentTaskCountが10の時の、ワーカーへのタスク割当の内容を確認する
- 50の静止画をデータセットとして、Ground TruthのCreateLabelingJobのAPI経由でジョブを作成する。(MaxConcurrentTaskCount=10)
- 各ワーカーが1タスクごとに何枚の画像を割り当てられているか、チェックする
- ジョブで「3」の数字に矩形を追加する(「33」は矩形が2つになる)
- ジョブを完了し、output.manifestの内容を確認する
- 「2」で作成したジョブを連鎖して、Ground Truthのコンソールから調整ジョブを作成し、反映を確認する
- 「2」で作成したジョブを連鎖して調整ジョブとし、Ground Truthのコンソールからジョブを作成する。 このとき、「3と、4にも矩形を付ける」ように修正する。
- ジョブで「4」の数字に矩形を追加する(結果、「33」、「34」、「43」、「44」は矩形が2つになる)
- ジョブを完了し、output.manifestの内容を確認する
- データセットに追加の画像を設定してジョブを連鎖し、output.manifestの反映を確認する
- データソースとして、追加の50の画像(51-100の数字が書かれている)を用意し、S3にアップロードする
- 「3」で完了したoutput.manifestを編集し、50の画像を追加データソースとして読み込ませる
- 100枚の静止画をデータセットとして、「3」で作成したジョブを連鎖して、Ground Truthのコンソールからジョブを作成する。
- ジョブで、追加された51-100の画像に「3」「4」の矩形を追加する
- ジョブを完了し、output.manifestの内容を確認する
S3バケットはこのような階層になっています。input側のdatasetと、output側のjobのフォルダは、分離した方が管理しやすくなります。
. ├── dataset │ ├── 1to50 │ │ ├── output_frame_0001.jpg │ │ ├── output_frame_0002.jpg │ │ └── ////etc │ └── 50to100 │ ├── output_frame_0051.jpg │ ├── output_frame_0052.jpg │ └── ////etc └── job ├── image-job-first (MaxConcurrentTaskCount=1000のジョブ) ├── image-job-second (MaxConcurrentTaskCount=10のジョブ) ├── image-job-third-chain (連鎖した調整ジョブ) └── image-job-fourth-chain (連鎖したデータセット追加ジョブ)
MaxConcurrentTaskCountが1000の時の、ワーカーへのタスク割当の内容を確認する
データソースとして50の画像(1から50の数字が書かれている)を用意し、S3にアップロードしておく
動画フレームの記事の動画を流用しています。
S3にアップロードします。
50の静止画をデータセットとして、Ground Truthのコンソールからジョブを作成する
マネジメントコンソールで作成するので、MaxConcurrentTaskCountは1000に設定されます。
効果は低そうですが、「自動データラベリング」を有効にします。 下の項目は、NumberOfHumanWorkersPerDataObjectに相当するものです。
ジョブを開始しました。それぞれのワーカーにタスクが割り当てられていることが解ります。
各ワーカーが1タスクごとに何枚の画像を割り当てられているか、チェックする
3に矩形をつけていきますが、終わる気配が無いので、どんどん進めていきます。
48のデータオブジェクトを処理した時点で、タスクが完了しました。 残り2のデータオブジェクトは、何もしていないtest2、test3ユーザが画面に表示している分と思われます。
test2、test3ユーザもデータオブジェクトを処理すると、ジョブが完了しました。
現状は、1つのタスクに未処理のものがある限り、同じタスクに参加しているユーザであれば、好きなだけ処理を行えることが解ります。
MaxConcurrentTaskCountが10の時の、ワーカーへのタスク割当の内容を確認する
MaxConcurrentTaskCountを10に制限してみます。 同じデータセットから、CreateLabelingJobのAPI経由でジョブを作成します。
長々と書きましたが、MaxConcurrentTaskCount: 10である所だけがポイントです。
APIで実行する前に、ラベル情報のJSONと、ラベルUIのliquidテンプレートを用意し、S3にアップロードします。
{"document-version":"2021-05-13","labels":[{"label":"three"}]}
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fassets.crowd.aws%2Fcrowd-html-elements.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> <crowd-form> <crowd-bounding-box name="boundingBox" src="{{ task.input.taskObject | grant_read_access }}" header="3を囲んでください" labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Bounding box instructions"> <ol><li><strong>Inspect</strong> the image</li><li><strong>Determine</strong> if the specified label is/are visible in the picture.</li><li><strong>Outline</strong> each instance of the specified label in the image using the provided “Box” tool.</li></ol><ul><li>Boxes should fit tight around each object</li><li>Do not include parts of the object are overlapping or that cannot be seen, even though you think you can interpolate the whole shape.</li><li>Avoid including shadows.</li><li>If the target is off screen, draw the box up to the edge of the image.</li></ul><p><img src="https://a.b.cdn.console.awsstatic.com/a/v1/RXIU2KIKPUTEU7TQ5DQOX6O3DNMPRQXILCPUDLIQKIYSM7STA3OA/src/images/bounding-box-good-example.png" style="max-width:100%" alt="Bounding box good example"></p><h2><span style="color: rgb(0, 138, 0);">Good Example</span></h2><p><img src="[object Object]" style="max-width:100%" alt="Bounding box bad example"></p><h2><span style="color: rgb(230, 0, 0);">Bad Example</span></h2> </full-instructions> <short-instructions> <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3><p>Enter description of a correct bounding box label</p><p><img src="https://a.b.cdn.console.awsstatic.com/a/v1/RXIU2KIKPUTEU7TQ5DQOX6O3DNMPRQXILCPUDLIQKIYSM7STA3OA/src/images/quick-instructions-example-placeholder.png" style="max-width:100%" alt="Add image here"></p><h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3><p>Enter description of an incorrect bounding box label</p><p><img src="https://a.b.cdn.console.awsstatic.com/a/v1/RXIU2KIKPUTEU7TQ5DQOX6O3DNMPRQXILCPUDLIQKIYSM7STA3OA/src/images/quick-instructions-example-placeholder.png" style="max-width:100%" alt="Add image here"></p> </short-instructions> </crowd-bounding-box> </crowd-form>
import { SageMakerClient, CreateLabelingJobCommand, } from "@aws-sdk/client-sagemaker"; // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/CreateLabelingJobCommand/ const client = new SageMakerClient({ region: "ap-northeast-1" }); const input = { // CreateLabelingJobRequest LabelingJobName: "image-job-second", // required LabelAttributeName: "image-job-second", // required InputConfig: { DataSource: { S3DataSource: { ManifestS3Uri: "s3://hoge/dataset/1to50/dataset-20240605T174303.manifest", // required }, }, }, OutputConfig: { S3OutputPath: "s3://hoge/job/", // required }, RoleArn: "arn:aws:iam::hoge:role/service-role/AmazonSageMaker-ExecutionRole-20231019T170624", // required LabelCategoryConfigS3Uri: "s3://hoge/label/data.json", StoppingConditions: { MaxPercentageOfInputDatasetLabeled: 100, }, LabelingJobAlgorithmsConfig: { LabelingJobAlgorithmSpecificationArn: "arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection", // required // InitialActiveLearningModelArn: "STRING_VALUE", // 前回のアクティブラーニングのARN }, HumanTaskConfig: { UiConfig: { UiTemplateS3Uri: "s3://hoge/label/template.liquid", }, // HumanTaskConfig WorkteamArn: "arn:aws:sagemaker:ap-northeast-1:hoge:workteam/private-crowd/inspection", // required PreHumanTaskLambdaArn: "arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox", // required TaskTitle: "3を矩形で囲んで下さい", // required TaskDescription: "Image object detection", // required NumberOfHumanWorkersPerDataObject: 1, // required TaskTimeLimitInSeconds: 28800, // required TaskAvailabilityLifetimeInSeconds: 864000, MaxConcurrentTaskCount: 10, AnnotationConsolidationConfig: { AnnotationConsolidationLambdaArn: "arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox", }, }, }; const command = new CreateLabelingJobCommand(input); const response = await client.send(command); console.log(response);
node --experimental-modules createLabelingJobs.mjs { '$metadata': { httpStatusCode: 200, requestId: 'f7ab2edc-1ff0-4d47-903d-9bd81891e634', extendedRequestId: undefined, cfId: undefined, attempts: 1, totalRetryDelay: 0 }, LabelingJobArn: 'arn:aws:sagemaker:ap-northeast-1:hoge:labeling-job/image-job-second' }
先ほどと同じ様に、3ユーザに分かれて処理を開始します。
test1ユーザが8件処理を行った所で、test1ユーザのタスクが完了しました。 リロードしても、タスクが表示されません。
test2、test3ユーザが画面に出ていたデータオブジェクトを処理したところ、全員のタスクが完了になりました。 test1が8件、test2が1件、test3が1件、合計10件処理が完了しています。
3分ほど経過すると、全員に新しいタスクが割り当てられていました。
test1ユーザが4件、test2ユーザが3件、test3ユーザが3件、合計10件でタスクが完了しました。 設定の通り、1つのタスク内の画像の数は、MaxConcurrentTaskCountにより制御できるようです。
output.manifestを確認しました。 JSON LINESの中で、annotationsの項目に、矩形が配列として格納されています。33だけ、配列の要素が2つ存在します。
{"source-ref":"s3://hoge/dataset/1to50/output_frame_0001.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.282150","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0002.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.429673","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0003.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":196,"left":397,"height":207,"width":155}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.606657","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0004.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:00:30.976891","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0005.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.285016","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0006.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:11:08.602026","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0007.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.609502","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0008.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.336632","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0009.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.432566","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0010.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.286465","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0011.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.652620","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0012.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.334639","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0013.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":207,"width":152}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:11:08.602794","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0014.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.430393","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0015.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.333969","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0016.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.839722","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0017.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.335960","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0018.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.428886","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0019.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.431120","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0020.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.285794","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0021.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.433243","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0022.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.654050","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0023.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":481,"height":207,"width":133}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.283633","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0024.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.428137","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0025.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.105141","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0026.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.331116","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0027.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.651157","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0028.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.104430","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0029.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.331822","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0030.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":298,"height":214,"width":169}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.106585","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0031.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":239,"width":144}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.332555","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0032.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":317,"height":243,"width":144}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.105861","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0033.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":317,"height":207,"width":156},{"class_id":0,"top":195,"left":465,"height":219,"width":160}]},"image-job-second-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.337344","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0034.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":313,"height":227,"width":156}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.651914","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0035.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":195,"left":321,"height":219,"width":148}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.840593","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0036.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":325,"height":207,"width":140}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.653332","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0037.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":187,"left":321,"height":219,"width":152}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.333272","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0038.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":328,"height":219,"width":137}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.655474","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0039.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":235,"width":136}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.608110","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0040.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.284335","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0041.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.656166","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0042.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.654741","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0043.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":204,"width":149}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.282918","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0044.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.431844","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0045.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.839024","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0046.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.103672","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0047.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.608833","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0048.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:00:30.976177","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0049.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.335296","job-name":"labeling-job/image-job-second"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0050.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.607393","job-name":"labeling-job/image-job-second"}}
作成したジョブを連鎖して、Ground Truthのコンソールから調整ジョブを作成する
先程のジョブを連鎖して、調整ジョブを作成します。 調整ジョブとは、既につけられた教師データを確認し、必要であれば修正(矩形の位置を直すなど)を行う機能です。
MaxConcurrentTaskCountは1000で行います。ジョブの作成をコンソールから行います。 APIからも作成可能ですが、調整ジョブ用のUIテンプレートの作成等、かなり手間が掛かります。
Jobの名前を、image-job-third-chainで設定しました。 自動データラベリングのチェックを外すと、既存ラベルの表示のオプションが表示されます。 今回は3の矩形に加えて、4の矩形も追加します。既存ラベルを表示するようにします。
fourのラベルを追加しました。
ジョブで「4」の数字に矩形を追加する(結果、「33」、「34」、「43」、「44」は矩形が2つになる)
3のラベルは既に表示されています。領域が重ならないように、4に矩形を加えます。
ジョブを完了し、output.manifestの内容を確認する
{"source-ref":"s3://hoge/dataset/1to50/output_frame_0001.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.282150","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:34:10.637802","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0002.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.429673","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.641007","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0003.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":196,"left":397,"height":207,"width":155}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.606657","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":196,"left":397,"height":207,"width":155}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.023764","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0004.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:00:30.976891","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":211,"left":395,"height":195,"width":164}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.645977","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0005.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.285016","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.024458","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0006.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:11:08.602026","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.649494","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0007.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.609502","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.515271","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0008.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.336632","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.643819","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0009.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.432566","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.790306","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0010.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.286465","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.640288","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0011.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.652620","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.641687","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0012.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.334639","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.795106","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0013.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":207,"width":152}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:11:08.602794","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":207,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.799425","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0014.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.430393","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":199,"left":473,"height":219,"width":164}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.021568","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0015.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.333969","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.646674","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0016.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.839722","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.020835","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0017.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.335960","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.020150","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0018.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.428886","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.512391","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0019.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.431120","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.793075","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0020.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.285794","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.647348","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0021.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.433243","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.642362","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0022.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.654050","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.795816","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0023.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":481,"height":207,"width":133}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.283633","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":481,"height":207,"width":133}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.648800","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0024.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.428137","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":219,"left":481,"height":195,"width":141}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.516731","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0025.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.105141","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.645267","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0026.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.331116","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.791014","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0027.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.651157","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.792374","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0028.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.104430","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.514591","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0029.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.331822","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.793722","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0030.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":298,"height":214,"width":169}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.106585","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":298,"height":214,"width":169}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.022285","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0031.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":239,"width":144}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.332555","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":239,"width":144}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.515986","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0032.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":317,"height":243,"width":144}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.105861","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":317,"height":243,"width":144}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.644557","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0033.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":317,"height":207,"width":156},{"class_id":0,"top":195,"left":465,"height":219,"width":160}]},"image-job-second-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.337344","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":203,"left":317,"height":207,"width":156},{"class_id":0,"top":195,"left":465,"height":219,"width":160}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.650219","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0034.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":313,"height":227,"width":156}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.651914","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":313,"height":227,"width":156},{"class_id":1,"top":191,"left":473,"height":232,"width":145}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"0":"three","1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.643105","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0035.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":195,"left":321,"height":219,"width":148}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.840593","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":195,"left":321,"height":219,"width":148}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.639520","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0036.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":325,"height":207,"width":140}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.653332","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":207,"left":325,"height":207,"width":140}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.797286","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0037.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":187,"left":321,"height":219,"width":152}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.333272","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":187,"left":321,"height":219,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.019435","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0038.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":328,"height":219,"width":137}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.655474","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":191,"left":328,"height":219,"width":137}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.797994","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0039.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":235,"width":136}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.608110","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":183,"left":325,"height":235,"width":136}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.018682","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0040.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.284335","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":211,"left":317,"height":188,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.513155","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0041.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.656166","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":203,"left":325,"height":196,"width":136}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.513903","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0042.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T09:58:24.654741","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":195,"left":297,"height":227,"width":180}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:34:10.638546","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0043.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":204,"width":149}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.282918","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":0,"top":199,"left":473,"height":204,"width":149},{"class_id":1,"top":199,"left":317,"height":200,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"0":"three","1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.023027","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0044.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.431844","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":207,"left":328,"height":215,"width":149},{"class_id":1,"top":211,"left":477,"height":207,"width":164}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0},{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.796542","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0045.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:25:57.839024","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":207,"left":321,"height":207,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.800151","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0046.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:05:52.103672","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":211,"left":328,"height":195,"width":137}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:38:53.517436","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0047.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.608833","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":203,"left":317,"height":200,"width":152}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.798711","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0048.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:00:30.976177","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":211,"left":325,"height":188,"width":136}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.794414","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0049.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:15:17.335296","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[{"class_id":1,"top":215,"left":309,"height":188,"width":160}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"1":"four"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.648064","job-name":"labeling-job/image-job-third-chain","adjustment-status":"adjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0050.jpg","image-job-second":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.607393","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"image_size":[{"width":960,"height":540,"depth":3}],"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:36:32.791702","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}}
抜粋して、33番と34番のデータを確認します。
33番は、元々2つの矩形が存在し、調整ジョブでも何も作業しませんでした。 image-job-third-chain.annotationsで、最初の矩形が継承されているのが解ります。
{ "source-ref": "s3://hoge/dataset/1to50/output_frame_0033.jpg", "image-job-second": { "annotations": [ { "class_id": 0, "top": 203, "left": 317, "height": 207, "width": 156 }, { "class_id": 0, "top": 195, "left": 465, "height": 219, "width": 160 } ] }, "image-job-second-metadata": { //省略 }, "image-job-third-chain": { "annotations": [ { "class_id": 0, "top": 203, "left": 317, "height": 207, "width": 156 }, { "class_id": 0, "top": 195, "left": 465, "height": 219, "width": 160 } ] }, "image-job-third-chain-metadata": { //省略 } }
34番は、元々1つの矩形が存在し、調整ジョブで追加の矩形が1つ追加されました。 同じくimage-job-third-chain.annotationsで、継承された矩形と、新しい矩形で、2つの矩形が存在することが解ります。
{ "source-ref": "s3://hoge/dataset/1to50/output_frame_0034.jpg", "image-job-second": { "annotations": [ { "class_id": 0, "top": 191, "left": 313, "height": 227, "width": 156 } ] }, "image-job-second-metadata": { //省略 }, "image-job-third-chain": { "annotations": [ { "class_id": 0, "top": 191, "left": 313, "height": 227, "width": 156 }, { "class_id": 1, "top": 191, "left": 473, "height": 232, "width": 145 } ] }, "image-job-third-chain-metadata": { //省略 } }
データセットに追加の画像を設定してジョブを連鎖し、output.manifestの反映を確認する
最後に、追加学習を想定して、50のラベル付けが必要な画像を追加してみます。
データソースとして、追加の50の画像(51-100の数字が書かれている)を用意し、S3にアップロードする
「3」で完了したoutput.manifestを編集し、50の画像を追加データソースとして読み込ませる
3のoutput.manifestは、「s3://hoge/job/image-job-third-chain/manifests/output/output.manifest」に保存されています。 ここに追加データソースを50行加えて、リネームして保存しておきます。
代替マニフェストファイルを指定することはできません。前のジョブの出力マニフェストを手動で編集して新しい項目を追加してから、連鎖ジョブを開始します。 Amazon S3 URI を使用すると、Amazon S3 バケット内のマニフェストを格納している場所を見つけやすくなります。 そこからマニフェストファイルをダウンロードして、コンピュータ上でローカルに編集し、新しいバージョンをアップロードして置き換えます。
{"source-ref":"s3://hoge/dataset/1to50/output_frame_0001.jpg","image-job-second":{"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T23:24:53.282150","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:34:10.637802","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0002.jpg","image-job-second":{"annotations":[]},"image-job-second-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:12:14.429673","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"annotations":[]},"image-job-third-chain-metadata":{"objects":[],"class-map":{},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:37:44.641007","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} {"source-ref":"s3://hoge/dataset/1to50/output_frame_0003.jpg","image-job-second":{"annotations":[{"class_id":0,"top":196,"left":397,"height":207,"width":155}]},"image-job-second-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-05T10:04:46.606657","job-name":"labeling-job/image-job-second"},"image-job-third-chain":{"annotations":[{"class_id":0,"top":196,"left":397,"height":207,"width":155}]},"image-job-third-chain-metadata":{"objects":[{"confidence":0}],"class-map":{"0":"three"},"type":"groundtruth/object-detection","human-annotated":"yes","creation-date":"2024-06-06T01:35:21.023764","job-name":"labeling-job/image-job-third-chain","adjustment-status":"unadjusted"}} .... //ここから下を追加 {"source-ref":"s3://hoge/dataset/51to100/output_frame_0051.jpg"} {"source-ref":"s3://hoge/dataset/51to100/output_frame_0052.jpg"} ....
100の静止画をデータセットとして、「3」で作成したジョブを連鎖して、Ground Truthのコンソールからジョブを作成する
前回のジョブをクローンして、「image-job-fourth-chain」ジョブを作成します。 ラベル属性名は前回のラベル属性名(一般的には前回のジョブ名)を使用しています。 manifestの1-50は、全て前回のラベル属性名が存在し、新規追加した51-100のデータにはラベル属性が存在しないので、結果として51-100のデータだけがラベル付けの対象となります。 デフォルトのラベル属性名を使うと、自動で全てがラベル付の対象となります。
デフォルトでは、Ground Truth で選択されているラベルの属性名が使用されます。そのラベル属性名に接続されたデータを含まないデータオブジェクトはすべてラベル付けされます。 マニフェストに存在しないラベル属性名を使用すると、データセット内のオブジェクトはすべて、ジョブで処理されます。
マニフェストファイルは、先ほど作成したcustom-output.manifest.jsonを使用します。
調整ジョブでオフになっていた自動データラベリングを、再度有効にします。
同時に、前回のラベル属性を指定することで、ラベル付けのツールに「three」「four」のラベルを表示することができます。
ジョブを作成すると、オブジェクトが100で認識されました。
ジョブで、追加された画像に「3」「4」の矩形を追加する
ジョブを開始すると、51-100の画像のみ表示されます。 「3」と「4」にのみ矩形を追加する形で処理を進めていきます。
ジョブを完了し、output.manifestの内容を確認する
s3://hoge/job/image-job-fourth-chain/manifests/output/output.manifestの中身を確認します。 抜粋して紹介します。
1-50のデータに変化はありませんでした。
74番の画像は、今回4の矩形を追加しています。指定したラベル属性名でアノテーションデータが作成されていることが解ります。
{ "source-ref": "s3://hoge/dataset/51to100/output_frame_0074.jpg", "image-job-third-chain": { "image_size": [ { "width": 960, "height": 540, "depth": 3 } ], "annotations": [ { "class_id": 1, "top": 199, "left": 469, "height": 223, "width": 160 } ] }, "image-job-third-chain-metadata": {... } }
まとめ
SageMaker Ground Truthの画像検出について、調査を行いました。
- createLabelingJobのAPIでMaxConcurrentTaskCountの値を調整すると、1タスク内の画像の枚数を1から1000の間で調整できる。
- タスクの粒度の設定となる。タスク毎の期限を細かく設定する時に有効と思われる
- 1つのタスクをワーカー全員でシェアする。タスク内の画像を全て処理するとタスク完了となり、新規タスクが作成される
- output.manifestは連鎖を行うことにより、最新のジョブのannotationの中に、これまで全ての矩形の情報が蓄積されるようだ
MaxConcurrentTaskCountと、連鎖の仕組みについての理解が深まったと思います。